[小ネタ] Lambda でコンテナイメージを動かした場合の環境変数を確認してみた

[小ネタ] Lambda でコンテナイメージを動かした場合の環境変数を確認してみた

コンテナイメージの Lambda も通常のランタイムと同じ環境変数でした
Clock Icon2022.08.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

テクニカルサポートの hato です。

コンテナイメージの Lambda 関数で、ECS の認証情報を取得する際に利用する環境変数AWS_CONTAINER_CREDENTIALS_FULL_URIが設定されているか確認する機会がありましたので、小ネタとしてご紹介します。

コンテナ認証情報 - AWSSDK とツール

結論

ドキュメントに記載の環境変数が設定されており、AWS_CONTAINER_CREDENTIALS_FULL_URIは設定されていない。

AWS Lambda 環境変数の使用 - AWS Lambda

やってみた

次のドキュメントを参考に、bootstrap ファイル内でenvコマンドを実行しました。
ベースイメージはAmazon Linux 2(public.ecr.aws/lambda/provided:al2)です。

_HANDLER=function.handler
AWS_REGION=ap-northeast-1
AWS_EXECUTION_ENV=AWS_Lambda_Image
AWS_LAMBDA_FUNCTION_NAME=hato-container-Lambda
AWS_LAMBDA_FUNCTION_MEMORY_SIZE=128
AWS_LAMBDA_FUNCTION_VERSION=$LATEST
AWS_LAMBDA_INITIALIZATION_TYPE=on-demand
AWS_LAMBDA_LOG_GROUP_NAME=/aws/lambda/hato-container-Lambda
AWS_LAMBDA_LOG_STREAM_NAME=2022/08/01/[$LATEST]c7b08b503b3048449078fefb6c712ff6
AWS_ACCESS_KEY_ID=ASIAxxxxxxxxxxxxxxxx
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
AWS_SESSION_TOKEN=AQoDYXdzEJr...
AWS_LAMBDA_RUNTIME_API=127.0.0.1:9001
LAMBDA_TASK_ROOT=/var/task
LAMBDA_RUNTIME_DIR=/var/runtime
TZ=:/etc/localtime
LANG=en_US.UTF-8
PATH=/var/lang/bin:/usr/local/bin:/usr/bin/:/bin:/opt/bin
LD_LIBRARY_PATH=/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib:/opt/lib
AWS_XRAY_CONTEXT_MISSING=LOG_ERROR
AWS_XRAY_DAEMON_ADDRESS=169.254.79.129:2000
AWS_DEFAULT_REGION=ap-northeast-1
PWD=/var/task
SHLVL=1
_AWS_XRAY_DAEMON_ADDRESS=169.254.79.129
_AWS_XRAY_DAEMON_PORT=2000
_=/usr/bin/env

ECS 用の環境変数は設定されていない

ドキュメントには記載がありませんが、Greengrass LambdaCloudShellなど、ECS 以外の AWS サービスでも設定されている事例がありましたので、もしかしたらあるかも?と期待していましたが設定されていないようです。

AWS_CONTAINER_CREDENTIALS_FULL_URIが設定されていませんので、ECS で稼働するコンテナを Lambda に移行する場合は、AWS_CONTAINER_CREDENTIALS_FULL_URIがある前提が崩れる点に注意が必要です。

また、試しにメタデータ(169.254.170.2および169.254.169.254)に curl を行いましたがエラーになりました。

最後に

この記事が誰かのお役にたてば幸いです。

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.